package ge.testes;



import ge.escola.Serie;
import ge.escola.Turma;
import ge.usuarios.Aluno;
import ge.util.Horario;
import junit.framework.Assert;

import org.junit.Before;
import org.junit.Test;

public class TurmaTest {

	Turma turma;
	Serie serie;
	
	@Before
	public void turma() throws Exception{
		serie = new Serie("8 E.F.", null);
		turma = new Turma(serie,"A");
	}
	
	@Test
	public void testTurma() throws Exception{
		Assert.assertEquals("A",turma.getNome());
		Assert.assertEquals(15,turma.getNumeroAlunos());
		
		Assert.assertEquals("Turma A da serie 8 E.F.",turma.toString());
		
	}
	
	@Test
	public void testAddRemove() throws Exception{
		Aluno aluno = new Aluno("Teste", "Teste", "Teste");
		turma.addAluno(aluno);
		Assert.assertEquals(1,turma.getListaAlunos().size());
		
		turma.removeAluno(aluno);
		Assert.assertEquals(0,turma.getListaAlunos().size());
		
		turma.addHorario(new Horario("segunda","08:00",1.0,null));
		Assert.assertEquals(1,turma.getListaHorarios().size());
		
		turma.removeHorario(new Horario("segunda","08:00",1.0,null));
		Assert.assertEquals(0,turma.getListaHorarios().size());
		
		try{
			turma.addAluno(aluno);
		}catch(Exception e){
			Assert.assertEquals("Esse aluno ja esta cadastrado nessa turma.", e.getMessage());
		}
		
		try{
			turma.removeAluno(new Aluno("Teste a", "Teste a", "Teste a"));
		}catch(Exception e){
			Assert.assertEquals("Esse aluno nao esta cadastrado nessa turma.", e.getMessage());
		}
		
		try{
			turma.removeHorario(new Horario("quarta","08:00",1.0, null));
		}catch(Exception e){
			Assert.assertEquals("Essa turma ja tem esse horario ocupado.", e.getMessage());
		}
	}
	
}



















